﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entidades.Solicitud;
using Persistencia.Catalogo;
using Entidades.Consultas.Personalizadas;
using Entidades.Catalogo;
using Persistencia.Solicitud;

namespace Control.Catalogo
{
    public class CtrlSolicitudTrabajosRealizar : Control.General.IControl
    {
        public EntUsuario usuario;
        public string status = ""; // usado para indicarle al paaquete que si el status es *-1  o *0 debera omitir los filtros de jefe-subordinado pues estan deseando ver
                                   // aquellas obras de solicitudes en -1 Por solicitar o 0 Solicitadas
        public EntSolicitudTrabajosRealizar Obtener(Entidades.General.IEntidad entidad)
        {
            PerSolicitudTrabajosRealizar persistencia = new PerSolicitudTrabajosRealizar();
            return (EntSolicitudTrabajosRealizar)persistencia.Obtener(entidad);
        }

        public List<EntObraConDetalle> CriteriosObtenerTodos(string cveSolicitud,string FechaOficio, string NoOficio, string CveSolicitante, string CveEstatus,string descObra)
        {
            PerSolicitudTrabajosRealizar persistencia = new PerSolicitudTrabajosRealizar();
            return persistencia.ConsultarObra(cveSolicitud, FechaOficio, NoOficio, CveSolicitante, CveEstatus, usuario.CveUsuario.ToString(), descObra);
        }

        public List<EntObraConDetalle> CriteriosObtenerTodosBandeja(string criterios, string orden, EntUsuario usuario)
        {
            PerSolicitudTrabajosRealizar persistencia = new PerSolicitudTrabajosRealizar();
            return persistencia.ConsultarObraBandeja(criterios, orden, usuario, status);
        }

        public List<EntObraConDetalle> CriteriosObtenerDetalleGrafica(string cveUsuario,string cveEstatusObra,string cveSolicitante,string esPrioritaria,string cadenaBuscar)
        {
            PerSolicitudTrabajosRealizar persistencia = new PerSolicitudTrabajosRealizar();
            return persistencia.ConsultarDetalleGrafica(cveUsuario, cveEstatusObra, cveSolicitante, esPrioritaria, cadenaBuscar);
        }

        public List<EntAfectadoDetalleGrafica> CriteriosObtenerDetalleGraficaAfectado(string cve_obra, string cadenaBuscar)
        {
            PerSolicitudSeguimiento persistencia = new PerSolicitudSeguimiento();
            return persistencia.ConsultarDetalleGraficaAfectado(cve_obra, cadenaBuscar);
        }

        public int Insertar(EntSolicitudTrabajosRealizar entidad)
        {
            PerSolicitudTrabajosRealizar persistencia = new PerSolicitudTrabajosRealizar();
            persistencia.Insertar(entidad);
            return 0;
        
        }

        public int Eliminar(EntSolicitudTrabajosRealizar entidad)
        {
            PerSolicitudTrabajosRealizar persistencia = new PerSolicitudTrabajosRealizar();
            persistencia.Eliminar(entidad);
            return 0;

        }

        public List<EntObraConDetalle> ObtenerPrioritarias(string inicial, string final)
        {
            PerSolicitudTrabajosRealizar persistencia = new PerSolicitudTrabajosRealizar();
            return persistencia.ObtenerPrioritarias(inicial, final);
        }

    }
}
